# 定义配置类，封装所有的配置，方便对配置的管理
from datetime import timedelta

from redis import StrictRedis


class Config:
    # 定义和配置名相同的类属性
    DEBUG = True  # 设置调试模式
    # 设置数据库链接地址
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1:3306/test19'
    # 数据库变化追踪
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 自动提交
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    # 自定义redis配置属性
    REDIS_HOST = '127.0.0.1'  # redis的ip
    REDIS_PORT = 6379  # redis的port
    # session的存储设置
    SESSION_TYPE = 'redis'  # 存储类型为redis
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # redis对象
    SESSION_USE_SIGNER = True  # 开启session id加密--
    # 生成随机字符串－－在ipython中，导入两个模块os-base64--base64.b64encode(os.urandom(48))
    SECRET_KEY = 'nL9uiV7LcpJiIfgfreqtrCurIS0Af8xfqdtqdFKLujR/T3u18ujZAta9uVo1j3C7'
    # 设置session过期时间，默认支持，可以修改时间
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)


# 根据不同的编程环境定义不同的配置子类，重写父类属性
class DevelopmentConfig(Config):
    DEBUG = True


class ProductConfig(Config):
    DEBUG = False


config_dict = {
    'dev': DevelopmentConfig,
    'pro': ProductConfig
}
